package com.magiccompass.alipay.barcode.service;

import java.util.List;

import com.magiccompass.alipay.barcode.entity.MerchantInfo;
import com.magiccompass.alipay.barcode.entity.AlipayBarcodePaymentResponse;
import com.magiccompass.alipay.barcode.entity.MerchantBankAccount;
import com.magiccompass.alipay.barcode.entity.MerchantEmails;
import com.magiccompass.alipay.barcode.entity.MerchantGroup;
import com.magiccompass.alipay.barcode.entity.MerchantTransaction;
import com.magiccompass.alipay.barcode.entity.MerchantTransactionDetail;
import com.magiccompass.alipay.barcode.entity.UserInfo;
import com.magiccompass.alipay.barcode.entity.ViewMerchantTransactionStatusRecords;

public interface MerchantBusinessService {
	public void save(Object entity);
	public void save(MerchantTransaction transaction);
	public List<MerchantTransaction> getMerchantTransactionListByTime(long fromDate, long toDate, String merchantId);
	public List<MerchantTransaction> getMerchantTransactionListByUpdateTime(long fromDate, long toDate, Integer merchantId);
	public List<MerchantTransaction> getMerchantTransactionListWithAlipayStatusOnlyByUpdateTime(long fromDate, long toDate, Integer merchantId);
	public MerchantInfo findMerchantById(Integer id);
	public List<MerchantInfo> findAllActiveMerchant();
	public MerchantTransaction findMerchantTransactionById(Integer id);
	public List<MerchantTransactionDetail> findMerchantTransactionOrderDetailById(Integer id);
	public List<MerchantInfo> findMerchantByNameAndDelFlag(String queryName, String delFlag);
	public List<MerchantBankAccount> findAllActiveMerchantBankAccount(Integer merchantId);
	public List<AlipayBarcodePaymentResponse> findMerchantTransactionPaymentResponse(Integer mtId);
	public List<UserInfo> findMerchantOperatorByNameAndMerchantIdAndDelFlag(String operatorName,String merchantId, String delFlag);
	public UserInfo findMerchantOperatorById(Integer id);
	public List<MerchantEmails> findAllActiveMerchantSupportEmails(Integer merchantId);
	public void removeAllActiveMerchantSupportEmails(Integer merchantId);
	public List<ViewMerchantTransactionStatusRecords> findTransactionAllStatus(Integer mtId);
	public List<MerchantGroup> findMerchantGroupByName(String queryName);
	public List<MerchantGroup> findAllMerchantGroup();
	public MerchantGroup findMerchantGroupById(Integer merchantGroupId);
	public List<MerchantInfo> findMerchantByGroupId(Integer mgId);
	public List<UserInfo> findMerchantAdminOperatorByNameAndDelFlag(String operatorName, String delFlag);
	public List<MerchantTransaction> getMerchantTransactionListFromGroupByTime(long fromDate, long toDate, String merchantId, String merchantGroupIds);
}